home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / CHECKLST.PAK / CHECKLSX.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  161 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1995, 1995 by Borland International, All Rights Reserved
  4. //----------------------------------------------------------------------------
  5. #include <owl/pch.h>
  6. #include <owl/applicat.h>
  7. #include <owl/framewin.h>
  8. #include <owl/checklst.h>
  9. #include <stdio.h>
  10.  
  11. const int CheckListId = 100;
  12. const int NumItems = 15;
  13.  
  14. char Buffer[4096];
  15.  
  16. //
  17. // class CheckListXWindow
  18. // ~~~~~ ~~~~~~~~~~~~~~~~
  19. class TCheckListXWindow : public TWindow {
  20.   public:
  21.     TCheckListXWindow();
  22.    ~TCheckListXWindow();
  23.  
  24.     void  SetupWindow();
  25.     void  CleanupWindow();
  26.  
  27.     bool  CanClose();
  28.  
  29.   private:
  30.     TCheckList* CheckList;
  31.     TCheckListItem* Items;
  32.  
  33.   DECLARE_RESPONSE_TABLE(TCheckListXWindow);
  34. };
  35.  
  36.  
  37. //
  38. // CheckListXWindow constructor
  39. //
  40. TCheckListXWindow::TCheckListXWindow()
  41. :
  42.   TWindow(0, 0, 0)
  43. {
  44.   Items = new TCheckListItem[NumItems];
  45.  
  46.   for (int i = 0; i < NumItems; i++) {
  47.     char buffer[20];
  48.     sprintf(buffer, "Item %d", i);
  49.     Items[i].SetText(buffer);
  50.   }
  51.   Items[0].Toggle();
  52.   Items[1].SetIndeterminate();
  53.   Items[2].SetThreeStates(true);
  54.  
  55.   CheckList = new TCheckList(this, CheckListId, 10, 10, 400, 200, Items, NumItems);
  56. }
  57.  
  58.  
  59. //
  60. // CheckListXWindow destructor
  61. //
  62. TCheckListXWindow::~TCheckListXWindow()
  63. {
  64.   delete[] Items;
  65. }
  66.  
  67.  
  68. //
  69. // SetupWindow
  70. //
  71. void
  72. TCheckListXWindow::SetupWindow()
  73. {
  74.   TWindow::SetupWindow();
  75.   // put new stuff here
  76.   //
  77.  
  78. }
  79.  
  80. //
  81. //
  82. //
  83. bool
  84. TCheckListXWindow::CanClose()
  85. {
  86.   ::Buffer[0] = 0;
  87.   strcpy(::Buffer, "You've selected\r\n");
  88.   for (int i = 0; i < NumItems; i++) {
  89.     if (Items[i].IsChecked() || Items[i].IsIndeterminate()) {
  90.       char temp[20];
  91.       Items[i].GetText(temp, 20);
  92.       strcat(::Buffer, temp);
  93.       if (Items[i].IsIndeterminate())
  94.         strcat(::Buffer, " (ind)");
  95.       strcat(::Buffer, "\r\n");
  96.     }
  97.   }
  98.  
  99.   return MessageBox(::Buffer, "Okay to close?", MB_OKCANCEL) == IDOK;
  100. }
  101.  
  102.  
  103. //
  104. // CleanupWindow
  105. //
  106. void
  107. TCheckListXWindow::CleanupWindow()
  108. {
  109.   // put new stuff here
  110.   //
  111.   TWindow::CleanupWindow();
  112. }
  113.  
  114.  
  115. //
  116. // Response table for CheckListXWindow
  117. //
  118. DEFINE_RESPONSE_TABLE1(TCheckListXWindow, TWindow)
  119. END_RESPONSE_TABLE;
  120.  
  121.  
  122. //
  123. // class CheckListXApplication
  124. // ~~~~~ ~~~~~~~~~~~~~~~~~~~~~
  125. class TCheckListXApp : public TApplication {
  126.   public:
  127.     TCheckListXApp()
  128.     {
  129.     }
  130.    ~TCheckListXApp()
  131.     {
  132.     }
  133.  
  134.     void InitMainWindow()
  135.     {
  136.       TFrameWindow* frame = new TFrameWindow(0, "CheckListX application",
  137.         new TCheckListXWindow);
  138.       SetMainWindow(frame);
  139.     }
  140. };
  141.  
  142.  
  143. //
  144. // OwlMain
  145. //
  146. int
  147. OwlMain(int /*argc*/, char* /*argv*/ [])
  148. {
  149.   TCheckListXApp app;
  150.   return app.Run();
  151. }
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.